Canigó - Connector amb Antivirus
CONNECTOR AMB ANTIVIRUS
IntroduccióPropòsitEl propòsit del connector és proporcionar una interfície per poder utilitzar el servei d'Antivirus Central del CTTI. Context i Escenaris d'ÚsEl connector d'Antivirus es troba dins els connectors de serveis funcionals. Versions i DependènciesEn el present apartat es mostren quines són les versions i dependències necessàries per fer ús del Connector. Les dependències descrites a la següent url són requerides per tal de fer funcionar el servei: A qui va dirigitAquest document va dirigit als següents perfils:
Documents i Fonts de Referència
Descripció DetalladaArquitectura i ComponentsInterfícies i Components GenèricsEs pot trobar tota la documentació JavaDoc i el codi font referent aquests components a les següents url's: JavaDoc: http://canigo.ctti.gencat.net/confluence/canigodocs/site/canigo2_3_7/canigo-connectors-root/canigo-connectors-antivirus/apidocs/index.html RequerimentsEl connector Antivirus és compatible amb les versions 1.4 o superior de Java. Per versions inferiors no es garantitza el seu correcte funcionament. Si fos necessària la utilització d'una versió inferior a 1.4 s'hauria de posar-se en contacte amb el Per tal de que el connector Antivirus funcioni correctament sobre l'aplicació que l'utilitzi, és necessari que tingui definides les següents Keys en l'arxiu applicationResources.properties antivirus.message1=S'han trobat Instal.lació i ConfiguracióInstal.lacióLa instal.lació del connector requereix de la utilització de la llibreria 'canigo-connectors-antivirus' i les dependències indicades a l'apartat 'Introducció-Versions i Dependències'. Per poder disposar del Connector Antivirus en una aplicació Canigó s'ha de modificar el pom.xml de l'aplicació per incloure la llibreria del Connector com una dependència. <dependency> <groupId>canigo.connectors</groupId> <artifactId>canigo-connectors-antivirus</artifactId> <version>2.3.7</version> </dependency> ConfiguracióPer poder configurar el connector Antivirus és necessari incloure el següent bean en l'arxiu de configuració canigo-services.xml<import resource="canigo-connectors.xml"/> Classpath: src/main/resources/spring/canigo-connectors.xml En aquest arxiu s'haurà de declarar el bean següent:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- Altres beans que hi pugui haber --> <bean id="antivirusConnector" class="net.gencat.connectors.antivirus.impl.AntivirusConnectorImpl"> <property name="remote" value="true" /> <property name="serverIP" value="10.30.26.74" /> <property name="serverPort" value="1344" /> <property name="numDayDBCaduc" value="15" /> </bean> </beans> Les dades representades en aquest bean son: Remote: Indica si l'arxiu es troba en remot o en local. ServerIP: Direcció IP del servidor Engine Scan del CTTI, responsable dels escaneigs. ServerPort: Port pel qual es comunica l'aplicació amb el servidor Antivirus Central. numDayDBCaduc: Número de dies a partir del qual es considera que la definició de la base de dades de l'antivirus és obsoleta. Si es retornés que la base de dades de la definició de virus es troba obsoleta el connector retornarà un estat de Warning (veure detall). Amb aquests pasos el connector romandrà configurat. Utilització del ConnectorEl connector Antivirus disposa de dos modes de funcionament principals diferents en funció de on es trobi el document a escanejar.
L'antivirus te restriccions en la mida màxima del fitxer a escanejar i el nombre de nivells d'anidament dintre d'un fitxer zip: - Mida màxima (20MB) - Nombre màxim de nivells d'anidament (10nivells) Mode LocalAmb aquest mètode d'escaneig es pretén escanejar un arxiu que es trobi en la màquina local de l'usuari que esta utilitzant una aplicació Canigó que disposa d'aquest Connector. En la configuració del connector aquest mode ve representat per la propietat: <property name="remote" value="false" /> L'arxiu seleccionat es pujarà de forma automàtica al servidor d'aplicacions mitjançant el servei de upload de Canigó i posteriorment s'enviarà al Servidor Antivirus Central.Aquest últim retornarà la resposta que serà interpretada pel connector i facilitada a l'aplicació. Mode Remot
En la configuració del connector aquest mode ve representat per la propietat: <property name="remote" value="true" /> Aquest mode de funcionament te com a premissa que l'arxiu a escanejar ja es trobi pujat al servidor Central Antivirus. Els procediments per poder pujar un arxiu a aquest servidor no són de l'abast d'aquest document.
Exemple d'utilitzacióA continuació es mostra la descripció de l'ús pràctic del Connector Antivirus. 1.- Reproduir els passos del punt 2.1.4 Configuració. 2.- Creació de la JSP amb un TAG <fwk:file> per poder pujar l'arxiu:
<fwk:file styleId="Arxiu" property="arxiu"></fwk:file> 3.- Definir el TAG file en canigo-services-web.xml. <bean id="fileFieldTag" class="net.gencat.ctti.canigo.services.web.struts. taglib.forms.fields.FileFieldTag"> <property name="layout" value="false"/> <property name="i18nService" ref="i18nService"/> <property name="validationService" ref="webValidationService"/> </bean> 4. Definir el Bean associat al TAG file en el seu arxiu de configuració pertinent (action-servlet-xxx.xml). <bean parent="fileFieldTag"> <property name="styleId" value="Arxiu"></property> <property name="layout" value="false"></property> <property name="mode" value = "E,E,E"></property> </bean> 5.Definir el servei al l'arxiu de configuració del servlet (action-servlet-xxxx.xml). <property name="fileUpload" ref="fileUploadService" /> 6. Al utilitzar el TAG <fwk:file> s'està utilitzant de forma implícita el servei de upload de fitxers del Framework. Per tant farà falta configurar-lo. 6.1.Modificar el pom.xml de l'aplicació per incloure les dependències les llibreries dels serveis <dependency> <groupId>canigo</groupId> <artifactId>canigo-services-fileupload</artifactId> <version>2.3.7</version> </dependency> <dependency> <groupId>canigo</groupId> <artifactId>canigo-services-file</artifactId> <version>2.3.7</version> </dependency> 6.2. Modificar el canigo-services.xml per incloure els serveis nous. <import resource="canigo-services-fileupload.xml"/> <import resource="canigo-services-file.xml"/> 6.3.Afegim els arxius de configuració dels serveis nous. Classpath:/src/main/resources/file fileService.properties fileService.properties.desenvolupament fileUploadService.properties fileUploadService.properties.desenvolupament Contingut exemple de fileService.properties fileService.tempDir=d: Contingut exemple de fileUploadService.properties fileUploadService.maxAttachmentSize=2048 uploadResolver.maxUploadSize=1000000 uploadResolver.maxInMemorySize=10000000 uploadResolver.defaultEncoding=ISO-8859-1 Per més informació sobre el servei de upload de Canigó veure la informació de referència en el portal. 7. Finalment modificar la classe java de l'action per incloure el següent codi: private AntivirusConnector antivirus; private FileUploadService fileUpload; ... String[] UPLOADED_FILES = new String[] { "arxiu" }; UploadedFiles uploadedFiles = this.fileUpload. getUploadedFiles(request, UPLOADED_FILES); UploadedFile fitxerCarregat = uploadedFiles.getFile("arxiu"); ResultatEscaneig res = antivirus.scan(fitxerCarregat.getBytes()); 8. Per poder recuperar la informació d'escaneig que el connector retorna s'haurà de consultar de l'objecte de retorn ResultatEscaneig. En aquest cas: res.getEstat() <- Retorna l'estat general del procés d'escaneig (OK = 0, KO = -1, WARNING = 1). res.getMissatge() <- Missatge que acompanya l'estat de finalització de l'escaneig. res.getArrayVirus() <- Array d'objectes tipus InfectionInfo amb la informació de les amenaces trobades si fos el cas. Integració amb Altres ServeisIntegració amb el Servei de InternacionalitzacióEn els fitxers de configuració es defineixen claus que permeten especificar quins missatges retornar en cas errors. Per a poder traduir aquestes claus és necessari especificar que el connector utilitzarà el Servei d'Internacionalització (veure Configuració).
|